<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="generator" content="ApiGen 2.6.0" />

	<title>Class DIUrlShell</title>

	<script type="text/javascript" src="resources/combined.js?428767200"></script>
	<script type="text/javascript" src="elementlist.js?4200546020"></script>
	<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?2495970611" />

</head>

<body>
<div id="left">
	<div id="menu">
		<a href="index.html" title="Overview"><span>Overview</span></a>


		<div id="groups">
			<h3>Namespaces</h3>
			<ul>
				<li class="active"><a href="namespace-None.html">None</a>
						</li>
				<li><a href="namespace-PHP.html">PHP</a>
						</li>
			</ul>
		</div>

		<hr />


		<div id="elements">
			<h3>Classes</h3>
			<ul>
				<li><a href="class-DIBase.html">DIBase</a></li>
				<li><a href="class-DIConfig.html">DIConfig</a></li>
				<li><a href="class-DIContext.html">DIContext</a></li>
				<li><a href="class-DIContext_Inject.html">DIContext_Inject</a></li>
				<li><a href="class-DIDBConfig.html" class="invalid">DIDBConfig</a></li>
				<li><a href="class-DIDo.html">DIDo</a></li>
				<li><a href="class-DIEntity.html">DIEntity</a></li>
				<li><a href="class-DIError.html">DIError</a></li>
				<li><a href="class-DIErrorCode.html">DIErrorCode</a></li>
				<li><a href="class-DIEvent.html">DIEvent</a></li>
				<li><a href="class-DIFilterMap.html">DIFilterMap</a></li>
				<li><a href="class-DIFilterUtil.html">DIFilterUtil</a></li>
				<li><a href="class-DIInclude.html">DIInclude</a></li>
				<li><a href="class-DIIncludeConfig.html">DIIncludeConfig</a></li>
				<li><a href="class-DIInject.html">DIInject</a></li>
				<li><a href="class-DILet.html">DILet</a></li>
				<li><a href="class-DIModel.html">DIModel</a></li>
				<li><a href="class-DIModelUtil.html">DIModelUtil</a></li>
				<li><a href="class-DIMySQL.html">DIMySQL</a></li>
				<li><a href="class-DIRoute.html">DIRoute</a></li>
				<li><a href="class-DIRuntime.html">DIRuntime</a></li>
				<li><a href="class-DIRuntime_Imported.html">DIRuntime_Imported</a></li>
				<li><a href="class-DIService.html">DIService</a></li>
				<li><a href="class-DITpl.html">DITpl</a></li>
				<li class="active"><a href="class-DIUrlShell.html">DIUrlShell</a></li>
				<li><a href="class-Global1Filter.html">Global1Filter</a></li>
				<li><a href="class-Global2Filter.html">Global2Filter</a></li>
				<li><a href="class-Global3Filter.html">Global3Filter</a></li>
				<li><a href="class-OrekiUtil.html">OrekiUtil</a></li>
				<li><a href="class-TemplateDo.html">TemplateDo</a></li>
				<li><a href="class-Test.html">Test</a></li>
				<li><a href="class-TestDo.html">TestDo</a></li>
				<li><a href="class-TestInject.html">TestInject</a></li>
				<li><a href="class-TesttestDo.html">TesttestDo</a></li>
				<li><a href="class-XxxFilter.html">XxxFilter</a></li>
				<li><a href="class-YyyFilter.html">YyyFilter</a></li>
			</ul>

			<h3>Interfaces</h3>
			<ul>
				<li><a href="class-DIEvent_AppendFuncListener.html">DIEvent_AppendFuncListener</a></li>
				<li><a href="class-DIEvent_AppendVariableListener.html">DIEvent_AppendVariableListener</a></li>
				<li><a href="class-DIEvent_CallFuncListener.html">DIEvent_CallFuncListener</a></li>
				<li><a href="class-DIEvent_CallStaticFuncListener.html">DIEvent_CallStaticFuncListener</a></li>
				<li><a href="class-DIEvent_ClassCallListener.html">DIEvent_ClassCallListener</a></li>
				<li><a href="class-DIEvent_DestroyListener.html">DIEvent_DestroyListener</a></li>
				<li><a href="class-DIEvent_GetStaticVariableListener.html">DIEvent_GetStaticVariableListener</a></li>
				<li><a href="class-DIEvent_GetVariableListener.html">DIEvent_GetVariableListener</a></li>
				<li><a href="class-DIEvent_ObjCallListener.html">DIEvent_ObjCallListener</a></li>
				<li><a href="class-DIEvent_ObjCreateListener.html">DIEvent_ObjCreateListener</a></li>
				<li><a href="class-DIEvent_SetStaticVariableListener.html">DIEvent_SetStaticVariableListener</a></li>
				<li><a href="class-DIEvent_SetVariableListener.html">DIEvent_SetVariableListener</a></li>
				<li><a href="class-DIEventListener.html">DIEventListener</a></li>
				<li><a href="class-DIFilter.html">DIFilter</a></li>
				<li><a href="class-DIModelTemplate.html">DIModelTemplate</a></li>
			</ul>


			<h3>Exceptions</h3>
			<ul>
				<li><a href="class-DIException.html">DIException</a></li>
			</ul>


			<h3>Functions</h3>
			<ul>
				<li><a href="function-__autoload.html">__autoload</a></li>
				<li><a href="function-arg.html">arg</a></li>
				<li><a href="function-array_unset.html">array_unset</a></li>
				<li><a href="function-bt_page.html">bt_page</a></li>
				<li><a href="function-bt_shell_page.html">bt_shell_page</a></li>
				<li><a href="function-component_exist.html">component_exist</a></li>
				<li><a href="function-create_class.html">create_class</a></li>
				<li><a href="function-dump.html">dump</a></li>
				<li><a href="function-getip.html">getip</a></li>
				<li><a href="function-import.html">import</a></li>
				<li><a href="function-inject.html">inject</a></li>
				<li><a href="function-inject_dymic.html">inject_dymic</a></li>
				<li><a href="function-inject_full.html">inject_full</a></li>
				<li><a href="function-inject_func.html">inject_func</a></li>
				<li><a href="function-injectObjFunc.html">injectObjFunc</a></li>
				<li><a href="function-invoke_func.html">invoke_func</a></li>
				<li><a href="function-invoke_method.html">invoke_method</a></li>
				<li><a href="function-let.html">let</a></li>
				<li><a href="function-let_exists.html">let_exists</a></li>
				<li><a href="function-params_to_str.html">params_to_str</a></li>
				<li><a href="function-putjson.html">putjson</a></li>
				<li><a href="function-putjsonp.html">putjsonp</a></li>
				<li><a href="function-redirect.html">redirect</a></li>
				<li><a href="function-ref_arr.html">ref_arr</a></li>
				<li><a href="function-session.html">session</a></li>
				<li><a href="function-session_exists.html">session_exists</a></li>
				<li><a href="function-session_remove.html">session_remove</a></li>
				<li><a href="function-url.html">url</a></li>
			</ul>
		</div>
	</div>
</div>

<div id="splitter"></div>

<div id="right">
<div id="rightInner">
	<form id="search">
		<input type="hidden" name="cx" value="" />
		<input type="hidden" name="ie" value="UTF-8" />
		<input type="text" name="q" class="text" />
		<input type="submit" value="Search" />
	</form>

	<div id="navigation">
		<ul>
			<li>
				<a href="index.html" title="Overview"><span>Overview</span></a>
			</li>
			<li>
				<a href="namespace-None.html" title="Summary of None"><span>Namespace</span></a>
			</li>
			<li class="active">
<span>Class</span>			</li>
		</ul>
		<ul>
			<li>
				<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
			</li>
		</ul>
		<ul>
		</ul>
	</div>

<div id="content" class="class">
	<h1>Class DIUrlShell</h1>











	<div class="info">
		
		
		
		

		<b>Located at</b> <a href="source-class-DIUrlShell.html#2" title="Go to source code">urlshell.php</a><br />
	</div>


	<table class="summary" id="methods">
	<caption>Methods summary</caption>
	<tr data-order="doshell" id="_doshell">

		<td class="attributes"><code>
			 public static
			
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_doshell">#</a>
		<code><a href="source-class-DIUrlShell.html#26" title="Go to source code">doshell</a>( )</code>

		<div class="description short">
			
<p>do命令：可以定位到Do组件，再精确到子方法，还可尾随参数
URI格式：?xxx/yyy[/param1/param2/.../paramx]
格式说明：xxx对应XxxDo，yyy对应function yyy()
匹配规则：数组一维层对应XxxDo，二维层对应function，二维层的数字指定必需参数个数
注意事项：当严格模式关闭时，二维层的参数个数依然起约束作用，其它没有在规则中配置的XxxDo的function，其参数必须个数以实际参数表的必需个数为准。</p>

		</div>

		<div class="description detailed hidden">
			
<p>do命令：可以定位到Do组件，再精确到子方法，还可尾随参数
URI格式：?xxx/yyy[/param1/param2/.../paramx]
格式说明：xxx对应XxxDo，yyy对应function yyy()
匹配规则：数组一维层对应XxxDo，二维层对应function，二维层的数字指定必需参数个数
注意事项：当严格模式关闭时，二维层的参数个数依然起约束作用，其它没有在规则中配置的XxxDo的function，其参数必须个数以实际参数表的必需个数为准。</p>







		</div>
		</div></td>
	</tr>
	<tr data-order="letshell" id="_letshell">

		<td class="attributes"><code>
			 public static
			
			
			</code>
		</td>

		<td class="name"><div>
		<a class="anchor" href="#_letshell">#</a>
		<code><a href="source-class-DIUrlShell.html#45" title="Go to source code">letshell</a>( )</code>

		<div class="description short">
			
<p>let小程序命令 值枚举：<img
src="images/、i、i.*、i.、i.i、i.i.、i.i.*、.、." alt="" />
数组里配置的规则，凡是出现冲突的，一律作合并处理
前置声明：小程序都在DI_LET_PATH目录里，以下简称“该目录”。
匹配规则如下： {} -
空字串，没有任何LET可以执行。如果需要此效果，仅仅配置为return
array()即可; {.} - 该目录层次内所有LET可执行\ {*} -
该目录下所有层次的LET都可执行 {.*} -
该目录下所有层次的LET都可执行 {i} - 该目录下的i.php可执行
{i.} - 从该目录起，i目录层次内所有LET可执行 {i.*} -
从该目录起，i目录下所有层次的LET可执行 {i.i} -
从该目录起，i/i.php可执行 {i.i.} -
从该目录起，i/i目录层次内所有LET可执行 {i.i.*} -
从该目录起，i/i目录下所有层次的LET可执行 {i.i.i} -
从该目录起，i/i/i.php可执行 URI格式：
必须指定具体的LET文件路径，规则为{
?之后紧跟i.i[.i.。。。..i]，其中，i为任意字母/数字/下划线/横杠/句点的组合
} 例如： ?.i - 该目录下的i.php ?i - 该目录下的i.php ?i.i -
该目录下的i/i.php ?. - 无效命令 ? - 无效命令 ?i. - 无效命令
注意事项：
LET暂时不支持在文件名使用“.”和“_”，如文件“/core/let/a.b.php”是不能用?a.b定位的。但let()函数可以执行含有“.”和“_”的文件。</p>

		</div>

		<div class="description detailed hidden">
			
<p>let小程序命令 值枚举：<img
src="images/、i、i.*、i.、i.i、i.i.、i.i.*、.、." alt="" />
数组里配置的规则，凡是出现冲突的，一律作合并处理
前置声明：小程序都在DI_LET_PATH目录里，以下简称“该目录”。
匹配规则如下： {} -
空字串，没有任何LET可以执行。如果需要此效果，仅仅配置为return
array()即可; {.} - 该目录层次内所有LET可执行\ {*} -
该目录下所有层次的LET都可执行 {.*} -
该目录下所有层次的LET都可执行 {i} - 该目录下的i.php可执行
{i.} - 从该目录起，i目录层次内所有LET可执行 {i.*} -
从该目录起，i目录下所有层次的LET可执行 {i.i} -
从该目录起，i/i.php可执行 {i.i.} -
从该目录起，i/i目录层次内所有LET可执行 {i.i.*} -
从该目录起，i/i目录下所有层次的LET可执行 {i.i.i} -
从该目录起，i/i/i.php可执行 URI格式：
必须指定具体的LET文件路径，规则为{
?之后紧跟i.i[.i.。。。..i]，其中，i为任意字母/数字/下划线/横杠/句点的组合
} 例如： ?.i - 该目录下的i.php ?i - 该目录下的i.php ?i.i -
该目录下的i/i.php ?. - 无效命令 ? - 无效命令 ?i. - 无效命令
注意事项：
LET暂时不支持在文件名使用“.”和“_”，如文件“/core/let/a.b.php”是不能用?a.b定位的。但let()函数可以执行含有“.”和“_”的文件。</p>







		</div>
		</div></td>
	</tr>
	</table>







	<table class="summary" id="properties">
	<caption>Properties summary</caption>
	<tr data-order="_default_shell" id="$_default_shell">

		<td class="attributes"><code>
			public static
			string
		</code></td>

		<td class="name">
				<a href="source-class-DIUrlShell.html#4" title="Go to source code"><var>$_default_shell</var></a>
		</td>
		<td class="value"><code><span class="php-quote">'test/start'</span></code></td>
		<td class="description"><div>
			<a href="#$_default_shell" class="anchor">#</a>

			<div class="description short">
				
<p>默认命令</p>

			</div>

			<div class="description detailed hidden">
				
<p>默认命令</p>


			</div>
		</div></td>
	</tr>
	<tr data-order="_strict_mode" id="$_strict_mode">

		<td class="attributes"><code>
			public static
			boolean
		</code></td>

		<td class="name">
				<a href="source-class-DIUrlShell.html#9" title="Go to source code"><var>$_strict_mode</var></a>
		</td>
		<td class="value"><code><span class="php-keyword1">false</span></code></td>
		<td class="description"><div>
			<a href="#$_strict_mode" class="anchor">#</a>

			<div class="description short">
				
<p>严格模式启用时：
对于do命令————只能访问配置表里所允许的项目，且传入参数个数要不少于配置的个数。
对于let命令————只能访问配置规则允许的项目
严格模式禁用时：
对于do命令————所有do命令都可访问，但系统依旧判断目标是否存在。
已在配置表里指定参数个数的，依旧要传入足够的参数。
对于没有在配置表里存在的命令，其传入参数必需个数 以 {
实际函数参数表必需个数 } 为准。
对于let命令————所有let命令都可访问，但系统依旧判断目标是否存在。</p>

			</div>

			<div class="description detailed hidden">
				
<p>严格模式启用时：
对于do命令————只能访问配置表里所允许的项目，且传入参数个数要不少于配置的个数。
对于let命令————只能访问配置规则允许的项目
严格模式禁用时：
对于do命令————所有do命令都可访问，但系统依旧判断目标是否存在。
已在配置表里指定参数个数的，依旧要传入足够的参数。
对于没有在配置表里存在的命令，其传入参数必需个数 以 {
实际函数参数表必需个数 } 为准。
对于let命令————所有let命令都可访问，但系统依旧判断目标是否存在。</p>

<p>注意：
不管是否处于严格模式，都会检测实际方法参数表配置的需传个数，
配置的最少参数个数的的规则 要比
实际方法的参数表个数设置 更优先</p>


			</div>
		</div></td>
	</tr>
	</table>



</div>

	<div id="footer">
		 API documentation generated by <a href="http://apigen.org">ApiGen 2.6.0</a>
	</div>
</div>
</div>
</body>
</html>
